package com.itlong.cloud.POJO.PO;


import com.itlong.cloud.annotation.ItlField;
import com.itlong.cloud.annotation.ItlTables;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@ItlTables("hot_param_flow_rule")
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class HotParamFlowRule extends BasePO implements Serializable {

    //热点规则id
    @ItlField(value = "hot_flow_rule_id")
    private  String hotFlowRuleId;

    //规则父类id
    @ItlField(value = "flow_rule_id")
    private  String flowRuleId;

    //层级
    @ItlField(value = "layer")
    private  String layer;


    //每一个请求的最长等待时间
    @ItlField(value = "max_queueing_time_ms")
    private  Integer maxQueueingTimeMs;

    //规则的流控模式(0:立即拒绝掉.1:请求匀速排队)
    @ItlField(value = "control_behavior")
    private  String controlBehavior;

    //资源名称
    @ItlField(value = "resource_name_url")
    private  String resourceNameUrl;

    //系统阈值 默认1
    @ItlField(value = "syscount")
    private  Integer sysCount;


    //统计窗口时间长度
    @ItlField(value = "durationInsec")
    private  Integer durationInsec;


    //热点参数的下标
    @ItlField(value = "hot_paramidx")
    private  Integer hotParamIdx;


    //热点参数阈值数
    @ItlField(value = "hot_param_count")
    private   Integer hotParamCount;

    //热点参数的类型（1:int,2:double,3:String,4:long,5:float,6:char,7:byte）
    @ItlField(value = "hot_class_type")
    private  String hotClassType;

    //需要统计的值(热点值)
    @ItlField(value = "hot_object")
    private  Object hotObject;
}
